package com.dhecp.project.storage.service;

import com.dhecp.common.core.domain.AjaxResult;
import com.dhecp.project.storage.domain.HwFinalstatement;
import com.dhecp.project.storage.domain.HwFinalstatementSelect;

import java.util.List;
import java.util.Map;

/**
 * 尾程对账单(HwFinalstatement)表服务接口
 *
 * @author fxz
 * @since 2023-09-11 15:14:20
 */
public interface HwFinalstatementService {

    /**
    * 查询列表数据
    */
    List<HwFinalstatement> queryList(Map<String, Object> params) throws Exception; 
    /**
     * 通过ID查询单条数据
     *
     * @param params 参数
     * @return 实例对象
     */
     HwFinalstatement queryFirstRecord(Map<String, Object> params) throws Exception;

    AjaxResult saveData(Map<String, Object> params);

    /**
     *@Description: 查询前一单NID、BID
     *@Param: nid 必要参数：当前 单据编码
     *@return: AjaxResult (data.nid 前一单NID， data.bid 前一单BID)
     *@Author: hlf
     *@date: 2022-05-09 9:35
     */
    AjaxResult queryLastNid(Map<String, Object> params) throws Exception;

    /**
     *@Description: 查询后一单NID、BID
     *@Param: nid 必要参数：当前 单据编码
     *@return: AjaxResult (data.nid 后一单NID， data.bid 后一单BID)
     *@Author: hlf
     *@date: 2022-05-09 9:40
     */
    AjaxResult queryNextNid(Map<String, Object> params) throws Exception;


    /**
     *@Description: 流转  —— 添加流程任务、修改流程状态及生效标志
     *@Param: infoMap 必要参数：非网格字段（包括头部、底部所有显示和隐藏的字段）
     *@Param: infoItems 必要参数：对应实体类的json格式字符串（仅需 guid）
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-05-09 9:42
     */
    AjaxResult updateFlowGo(Map<String, Object> params);

    /**
     *@Description: 退回  —— 添加流程任务、修改流程状态及生效标志
     *@Param: infoMap 必要参数：非网格字段（包括头部、底部所有显示和隐藏的字段）
     *@Param: infoItems 必要参数：对应实体类的json格式字符串（仅需 guid）
     *@return: com.dhecp.common.core.domain.AjaxResult
     *@Author: hlf
     *@date: 2022-05-09 9:44
     */
    AjaxResult updateFlowBack(Map<String, Object> params);

    /**
     * 付款调用数据
     * @param params
     * @return
     * @throws Exception
     */
    List<HwFinalstatementSelect> queryListSelect(Map<String, Object> params) throws Exception;
}

